package com.lulalei.dbviewer.db;

import com.lulalei.dbviewer.commons.bean.RowBean;
import com.lulalei.dbviewer.commons.bean.TableBean;
import com.lulalei.dbviewer.commons.exception.CustomizeException;
import com.lulalei.dbviewer.db.mysql.DTO.ColumnsQueryDTO;
import com.lulalei.dbviewer.dto.DBTablesInfoDTO;

import java.sql.SQLException;
import java.util.List;

public interface DBDao {

    /**
     * 获取所有表的信息
     * @param dbTablesInfoDTO 配置好的数据库连接的名字,分页信息
     * @return  所有表的信息
     * @throws CustomizeException 自定义异常信息
     * @throws SQLException 数据库异常信息
     */
    List<TableBean>  getTables(DBTablesInfoDTO dbTablesInfoDTO) throws CustomizeException, SQLException;


    /**
     * 获取表的总数
     */
    Integer getTableTotal(DBTablesInfoDTO dbTablesInfoDTO) throws CustomizeException, SQLException;

    /**
     * 获取表的字段信息
     * @param columnsQueryDTO 查询所需的信息
     * @return  表的字段信息
     * @throws CustomizeException 自定义异常信息
     * @throws SQLException 数据库异常信息
     */
    List<RowBean> getTableInfo(ColumnsQueryDTO columnsQueryDTO) throws CustomizeException, SQLException;

}
